Taint와 Toleration

Taint와 Toleration은 특정 노드에 어떤 Pod가 스케줄링될 수 있는지를 제어하는 메커니즘입니다.

Taint(테인트)

노드에 설정하는 속성으로, 이 노드에 특정 Pod만 스케줄링되도록 제한합니다.

Toleration(톨러레이션)

Pod에 설정하는 속성으로, 특정 Taint가 있는 노드에도 스케줄링될 수 있는 권한을 부여합니다.

작동 방식

클라우드 네트워크 개념과 비교

실습 예시

노드에 Taint 설정

# 노드에 Taint 추가
kubectl taint nodes node1 app=database:NoSchedule

# 노드의 Taint 확인
kubectl describe node node1 | grep Taint

Pod에 Toleration 설정

apiVersion: v1
kind: Pod
metadata:
  name: database
spec:
  containers:
  - name: mysql
    image: mysql:5.7
  tolerations:
  - key: "app"
    operator: "Equal"
    value: "database"
    effect: "NoSchedule"

Taint 효과(Effect) 유형

일반적인 사용 사례